6.13. Binutils-2.24

El paquete Binutils contiene un enlazador, un ensamblador y otras utilidades para trabajar con ficheros objeto.

Tiempo aproximado de construcción: 2.0 SBU
Espacio requerido en disco: 365 MB

6.13.1. Instalación de Binutils

Verifique que los PTYs funcionan adecuadamente dentro del entorno chroot realizando una prueba simple:

expect -c "spawn ls"

Este comando debe emitir lo siguiente:

spawn ls

Si, en cambio, el resultado incluye el mensaje de abajo, el entorno no está configurado para un funcionamiento correcto PTY. Este problema debe resolverse antes de ejecutar los bancos de pruebas de Binutils y GCC:

The system has no more ptys.
Ask your system administrator to create more.

Suprima la instalación del archivo standards.info obsoleto, ya que uno más nuevo se instala más tarde en las instrucciones Autoconf:

rm -fv etc/standards.info
sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in

La documentación de Binutils recomienda construirlo fuera del directorio de las fuentes, en un directorio de construcción dedicado:

mkdir -v ../binutils-build
cd ../binutils-build

Prepara Binutils para su compilación:

../binutils-2.24/configure --prefix=/usr --enable-shared

Compila el paquete:

make tooldir=/usr

El significado del parámetro de make:

tooldir=/usr

Normalmente, el tooldir (el directorio donde en última instancia, se instalarán los ejecutables) se establece en $(exec_prefix)/$(target_alias).Por ejemplo, máquinas x86_64 lo expandirían hasta /usr/x86_64-unknown-linux-gnu. Debido a que este es un sistema personalizado, no se requiere un direcorio específico del sistema en /usr . Así, $(exec_prefix)/$(target_alias) se utilizaría si el sistema fuese usado para compilación cruzada (por ejemplo, la compilación de un paquete en una máquina Intel, pero generando código que se ejecutará en máquinas PowerPC)

[Important]

Importante

El banco de pruebas para Binutils en este capítulo se considera crítico. No te lo saltes bajo ninguna circunstancia.

Comprueba los resultados:

make check

Instala el paquete:

make tooldir=/usr install

6.13.2. Contenidos de Binutils

Programas instalados: addr2line, ar, as, c++filt, elfedit, gprof, ld, ld.bfd, nm, objcopy, objdump, ranlib, readelf, size, strings, and strip
Librerías instaladas: libbfd.{a,so}, and libopcodes.{a,so}
Directorio de instalación: /usr/lib/ldscripts

Descripciones cortas

addr2line

Traduce direcciones de programas a nombres de ficheros y números de líneas; dada una dirección y el nombre de un ejecutable, usa la información de depuración del ejecutable para averiguar qué fichero y número de línea está asociado con la dirección de

ar

Crea, modifica y extrae desde archivos

as

Un ensamblador que ensambla la salida de gcc dentro de ficheros objeto

c++filt

Utilizado por el enlazador para mangle C + + y Java símbolos y para mantener las funciones sobrecargadas para su clasificación

elfedit

Actualiza la cabecera ELF de archivos ELF

gprof

Muestra los datos del perfil del gráfico

ld

Un enlazador que combina una serie de archivos de objetos y archivos en un único fichero, reubicando sus datos y estableciendo las referencias a los símbolos

ld.bfd

Enlaces duros a ld

nm

Enumera los símbolos aparecen en un fichero objeto dado

objcopy

Traduce un tipo de ficheros objeto a otro

objdump

Muestra información sobre el fichero objeto indicado, con opciones de control de la información en particular para mostrar; la información mostrada es útil para los programadores que trabajan en herramientas de compilación

ranlib

Genera un índice de los contenidos de un archivo y lo almacena en el archivo; El índice lista cada símbolo definido por los miembros del archivo que son ficheros objeto reubicables.

readelf

Muestra información sobre binarios de tipo ELF

size

Muestra los tamaños de las secciones y el tamaño total de los ficheros objeto indicados

strings

Salidas, para cada fichero indicado, las cadenas de caracteres imprimibles de al menos la longitud especificada (por defecto a cuatro); Para los ficheros objeto muestra, por defecto, sólo las cadenas procedentes de las secciones de inicialización y carga, mientras que para otros tipos de archivos, escanea todo el archivo

strip

Descarta los símbolos de los ficheros objeto

libbfd

La librería de descriptores de ficheros binarios

libopcodes

Una librería para manejar mnemónicos son las versiones en "texto legible" de las instrucciones del procesador; se utiliza para la construcción de los servicios públicos como objdump.